package sopt.dev.data;

import java.util.List;

public interface ICityModel {

    /**
     * @Method Name  : addCity
     * @작성일   : 2013. 8. 23. 
     * @작성자   : Dev
     * @변경이력  :
     * @Method 설명 : 도시정보 추가
     * @param city
     */
    void addCity(CityVO<ItemVO> city);

    
    /**
	 * @Method Name  : addItemData
	 * @작성일   : 2013. 8. 23. 
	 * @작성자   : Dev
	 * @변경이력  :
	 * @Method 설명 : 해당 도시(도시명으로 검색)에 아이템 추가
	 * @param cityName
	 * @param item
	 */    
    void addItemData(String cityName, ItemVO item);
	
    
    /**
	 * @Method Name  : delItemData
	 * @작성일   : 2013. 8. 23. 
	 * @작성자   : Dev
	 * @변경이력  :
	 * @Method 설명 :해당 도시에서 아이템 삭제
	 * @param cityName
	 * @param item
	 */
	void delItemData(String cityName, ItemVO item);
	
	
	/**
	 * @Method Name  : updateItemData
	 * @작성일   : 2013. 8. 23. 
	 * @작성자   : Dev
	 * @변경이력  :
	 * @Method 설명 :해당 도시에서 아이템 정보 갱신
	 * @param cityName
	 * @param item
	 */
	void updateItemData(String cityName, ItemVO item);
		
	
	/**
	 * @Method Name  : findCityByName
	 * @작성일   : 2013. 8. 23. 
	 * @작성자   : Dev
	 * @변경이력  :
	 * @Method 설명 : 도시이름으로 도시 검색
	 * @param cityName
	 * @return
	 */
	CityVO<ItemVO> findCityByName(String cityName);
	
	int getCityIndex(CityVO<ItemVO> city);
	
	/**
	 * @Method Name  : readAllItemData
	 * @작성일   : 2013. 8. 23. 
	 * @작성자   : Dev
	 * @변경이력  :
	 * @Method 설명 : 해당 도시의 모든 아이템을 리스트 형태로 반환
	 * @param cityName
	 * @return
	 */
	List<ItemVO> readAllItemData(String cityName);
	
	
	/**
	 * @Method Name  : readAllCityData
	 * @작성일   : 2013. 8. 23. 
	 * @작성자   : Dev
	 * @변경이력  :
	 * @Method 설명 : 모든 도시정보 반환
	 * @return
	 */
	List<CityVO<ItemVO>> readAllCityData();

	
	/**
	 * @Method Name  : delCityData
	 * @작성일   : 2013. 8. 23. 
	 * @작성자   : Dev
	 * @변경이력  : 
	 * 			파라메터를 도시 객체로 바꿈
	 * @Method 설명 : 도시로 검색하여 삭제
	 * @param cityName
	 */
	void delCityData(CityVO<ItemVO> city);

	
	/**
	 * @Method Name  : updateCity
	 * @작성일   : 2013. 8. 23. 
	 * @작성자   : Dev
	 * @변경이력  :
	 * @Method 설명 : 도시 객체 갱신
	 * @param city
	 * @param position
	 */
	void updateCity(CityVO<ItemVO> city, int position);
}
